#include "StandardFontsDimensions.h"

#include <algorithm>

using namespace std;

static void initHelveticaMap(ULongToDoubleMap& ioMap) {
    ioMap.clear();
    ioMap[32] = 278; 
    ioMap[33] = 278; 
    ioMap[34] = 355; 
    ioMap[35] = 556; 
    ioMap[36] = 556; 
    ioMap[37] = 889; 
    ioMap[38] = 667; 
    ioMap[39] = 222; 
    ioMap[40] = 333; 
    ioMap[41] = 333; 
    ioMap[42] = 389; 
    ioMap[43] = 584; 
    ioMap[44] = 278; 
    ioMap[45] = 333; 
    ioMap[46] = 278; 
    ioMap[47] = 278; 
    ioMap[48] = 556; 
    ioMap[49] = 556; 
    ioMap[50] = 556; 
    ioMap[51] = 556; 
    ioMap[52] = 556; 
    ioMap[53] = 556; 
    ioMap[54] = 556; 
    ioMap[55] = 556; 
    ioMap[56] = 556; 
    ioMap[57] = 556; 
    ioMap[58] = 278; 
    ioMap[59] = 278; 
    ioMap[60] = 584; 
    ioMap[61] = 584; 
    ioMap[62] = 584; 
    ioMap[63] = 556; 
    ioMap[64] = 1015; 
    ioMap[65] = 667; 
    ioMap[66] = 667; 
    ioMap[67] = 722; 
    ioMap[68] = 722; 
    ioMap[69] = 667; 
    ioMap[70] = 611; 
    ioMap[71] = 778; 
    ioMap[72] = 722; 
    ioMap[73] = 278; 
    ioMap[74] = 500; 
    ioMap[75] = 667; 
    ioMap[76] = 556; 
    ioMap[77] = 833; 
    ioMap[78] = 722; 
    ioMap[79] = 778; 
    ioMap[80] = 667; 
    ioMap[81] = 778; 
    ioMap[82] = 722; 
    ioMap[83] = 667; 
    ioMap[84] = 611; 
    ioMap[85] = 722; 
    ioMap[86] = 667; 
    ioMap[87] = 944; 
    ioMap[88] = 667; 
    ioMap[89] = 667; 
    ioMap[90] = 611; 
    ioMap[91] = 278; 
    ioMap[92] = 278; 
    ioMap[93] = 278; 
    ioMap[94] = 469; 
    ioMap[95] = 556; 
    ioMap[96] = 222; 
    ioMap[97] = 556; 
    ioMap[98] = 556; 
    ioMap[99] = 500; 
    ioMap[100] = 556; 
    ioMap[101] = 556; 
    ioMap[102] = 278; 
    ioMap[103] = 556; 
    ioMap[104] = 556; 
    ioMap[105] = 222; 
    ioMap[106] = 222; 
    ioMap[107] = 500; 
    ioMap[108] = 222; 
    ioMap[109] = 833; 
    ioMap[110] = 556; 
    ioMap[111] = 556; 
    ioMap[112] = 556; 
    ioMap[113] = 556; 
    ioMap[114] = 333; 
    ioMap[115] = 500; 
    ioMap[116] = 278; 
    ioMap[117] = 556; 
    ioMap[118] = 500; 
    ioMap[119] = 722; 
    ioMap[120] = 500; 
    ioMap[121] = 500; 
    ioMap[122] = 500; 
    ioMap[123] = 334; 
    ioMap[124] = 260; 
    ioMap[125] = 334; 
    ioMap[126] = 584; 
    ioMap[161] = 333; 
    ioMap[162] = 556; 
    ioMap[163] = 556; 
    ioMap[164] = 167; 
    ioMap[165] = 556; 
    ioMap[166] = 556; 
    ioMap[167] = 556; 
    ioMap[168] = 556; 
    ioMap[169] = 191; 
    ioMap[170] = 333; 
    ioMap[171] = 556; 
    ioMap[172] = 333; 
    ioMap[173] = 333; 
    ioMap[174] = 500; 
    ioMap[175] = 500; 
    ioMap[177] = 556; 
    ioMap[178] = 556; 
    ioMap[179] = 556; 
    ioMap[180] = 278; 
    ioMap[182] = 537; 
    ioMap[183] = 350; 
    ioMap[184] = 222; 
    ioMap[185] = 333; 
    ioMap[186] = 333; 
    ioMap[187] = 556; 
    ioMap[188] = 1000; 
    ioMap[189] = 1000; 
    ioMap[191] = 611; 
    ioMap[193] = 333; 
    ioMap[194] = 333; 
    ioMap[195] = 333; 
    ioMap[196] = 333; 
    ioMap[197] = 333; 
    ioMap[198] = 333; 
    ioMap[199] = 333; 
    ioMap[200] = 333; 
    ioMap[202] = 333; 
    ioMap[203] = 333; 
    ioMap[205] = 333; 
    ioMap[206] = 333; 
    ioMap[207] = 333; 
    ioMap[208] = 1000; 
    ioMap[225] = 1000; 
    ioMap[227] = 370; 
    ioMap[232] = 556; 
    ioMap[233] = 778; 
    ioMap[234] = 1000; 
    ioMap[235] = 365; 
    ioMap[241] = 889; 
    ioMap[245] = 278; 
    ioMap[248] = 222; 
    ioMap[249] = 611; 
    ioMap[250] = 944; 
    ioMap[251] = 611;
}

static void initHelveticaBoldMap(ULongToDoubleMap& ioMap) {
    ioMap.clear();
    ioMap[32] = 278; 
    ioMap[33] = 278; 
    ioMap[34] = 355; 
    ioMap[35] = 556; 
    ioMap[36] = 556; 
    ioMap[37] = 889; 
    ioMap[38] = 667; 
    ioMap[39] = 222; 
    ioMap[40] = 333; 
    ioMap[41] = 333; 
    ioMap[42] = 389; 
    ioMap[43] = 584; 
    ioMap[44] = 278; 
    ioMap[45] = 333; 
    ioMap[46] = 278; 
    ioMap[47] = 278; 
    ioMap[48] = 556; 
    ioMap[49] = 556; 
    ioMap[50] = 556; 
    ioMap[51] = 556; 
    ioMap[52] = 556; 
    ioMap[53] = 556; 
    ioMap[54] = 556; 
    ioMap[55] = 556; 
    ioMap[56] = 556; 
    ioMap[57] = 556; 
    ioMap[58] = 278; 
    ioMap[59] = 278; 
    ioMap[60] = 584; 
    ioMap[61] = 584; 
    ioMap[62] = 584; 
    ioMap[63] = 556; 
    ioMap[64] = 1015; 
    ioMap[65] = 667; 
    ioMap[66] = 667; 
    ioMap[67] = 722; 
    ioMap[68] = 722; 
    ioMap[69] = 667; 
    ioMap[70] = 611; 
    ioMap[71] = 778; 
    ioMap[72] = 722; 
    ioMap[73] = 278; 
    ioMap[74] = 500; 
    ioMap[75] = 667; 
    ioMap[76] = 556; 
    ioMap[77] = 833; 
    ioMap[78] = 722; 
    ioMap[79] = 778; 
    ioMap[80] = 667; 
    ioMap[81] = 778; 
    ioMap[82] = 722; 
    ioMap[83] = 667; 
    ioMap[84] = 611; 
    ioMap[85] = 722; 
    ioMap[86] = 667; 
    ioMap[87] = 944; 
    ioMap[88] = 667; 
    ioMap[89] = 667; 
    ioMap[90] = 611; 
    ioMap[91] = 278; 
    ioMap[92] = 278; 
    ioMap[93] = 278; 
    ioMap[94] = 469; 
    ioMap[95] = 556; 
    ioMap[96] = 222; 
    ioMap[97] = 556; 
    ioMap[98] = 556; 
    ioMap[99] = 500; 
    ioMap[100] = 556; 
    ioMap[101] = 556; 
    ioMap[102] = 278; 
    ioMap[103] = 556; 
    ioMap[104] = 556; 
    ioMap[105] = 222; 
    ioMap[106] = 222; 
    ioMap[107] = 500; 
    ioMap[108] = 222; 
    ioMap[109] = 833; 
    ioMap[110] = 556; 
    ioMap[111] = 556; 
    ioMap[112] = 556; 
    ioMap[113] = 556; 
    ioMap[114] = 333; 
    ioMap[115] = 500; 
    ioMap[116] = 278; 
    ioMap[117] = 556; 
    ioMap[118] = 500; 
    ioMap[119] = 722; 
    ioMap[120] = 500; 
    ioMap[121] = 500; 
    ioMap[122] = 500; 
    ioMap[123] = 334; 
    ioMap[124] = 260; 
    ioMap[125] = 334; 
    ioMap[126] = 584; 
    ioMap[161] = 333; 
    ioMap[162] = 556; 
    ioMap[163] = 556; 
    ioMap[164] = 167; 
    ioMap[165] = 556; 
    ioMap[166] = 556; 
    ioMap[167] = 556; 
    ioMap[168] = 556; 
    ioMap[169] = 191; 
    ioMap[170] = 333; 
    ioMap[171] = 556; 
    ioMap[172] = 333; 
    ioMap[173] = 333; 
    ioMap[174] = 500; 
    ioMap[175] = 500; 
    ioMap[177] = 556; 
    ioMap[178] = 556; 
    ioMap[179] = 556; 
    ioMap[180] = 278; 
    ioMap[182] = 537; 
    ioMap[183] = 350; 
    ioMap[184] = 222; 
    ioMap[185] = 333; 
    ioMap[186] = 333; 
    ioMap[187] = 556; 
    ioMap[188] = 1000; 
    ioMap[189] = 1000; 
    ioMap[191] = 611; 
    ioMap[193] = 333; 
    ioMap[194] = 333; 
    ioMap[195] = 333; 
    ioMap[196] = 333; 
    ioMap[197] = 333; 
    ioMap[198] = 333; 
    ioMap[199] = 333; 
    ioMap[200] = 333; 
    ioMap[202] = 333; 
    ioMap[203] = 333; 
    ioMap[205] = 333; 
    ioMap[206] = 333; 
    ioMap[207] = 333; 
    ioMap[208] = 1000; 
    ioMap[225] = 1000; 
    ioMap[227] = 370; 
    ioMap[232] = 556; 
    ioMap[233] = 778; 
    ioMap[234] = 1000; 
    ioMap[235] = 365; 
    ioMap[241] = 889; 
    ioMap[245] = 278; 
    ioMap[248] = 222; 
    ioMap[249] = 611; 
    ioMap[250] = 944; 
    ioMap[251] = 611;
}

static void initHelveticaBoldObliqueMap(ULongToDoubleMap& ioMap) {
    ioMap.clear();
    ioMap[32] = 278; 
    ioMap[33] = 278; 
    ioMap[34] = 355; 
    ioMap[35] = 556; 
    ioMap[36] = 556; 
    ioMap[37] = 889; 
    ioMap[38] = 667; 
    ioMap[39] = 222; 
    ioMap[40] = 333; 
    ioMap[41] = 333; 
    ioMap[42] = 389; 
    ioMap[43] = 584; 
    ioMap[44] = 278; 
    ioMap[45] = 333; 
    ioMap[46] = 278; 
    ioMap[47] = 278; 
    ioMap[48] = 556; 
    ioMap[49] = 556; 
    ioMap[50] = 556; 
    ioMap[51] = 556; 
    ioMap[52] = 556; 
    ioMap[53] = 556; 
    ioMap[54] = 556; 
    ioMap[55] = 556; 
    ioMap[56] = 556; 
    ioMap[57] = 556; 
    ioMap[58] = 278; 
    ioMap[59] = 278; 
    ioMap[60] = 584; 
    ioMap[61] = 584; 
    ioMap[62] = 584; 
    ioMap[63] = 556; 
    ioMap[64] = 1015; 
    ioMap[65] = 667; 
    ioMap[66] = 667; 
    ioMap[67] = 722; 
    ioMap[68] = 722; 
    ioMap[69] = 667; 
    ioMap[70] = 611; 
    ioMap[71] = 778; 
    ioMap[72] = 722; 
    ioMap[73] = 278; 
    ioMap[74] = 500; 
    ioMap[75] = 667; 
    ioMap[76] = 556; 
    ioMap[77] = 833; 
    ioMap[78] = 722; 
    ioMap[79] = 778; 
    ioMap[80] = 667; 
    ioMap[81] = 778; 
    ioMap[82] = 722; 
    ioMap[83] = 667; 
    ioMap[84] = 611; 
    ioMap[85] = 722; 
    ioMap[86] = 667; 
    ioMap[87] = 944; 
    ioMap[88] = 667; 
    ioMap[89] = 667; 
    ioMap[90] = 611; 
    ioMap[91] = 278; 
    ioMap[92] = 278; 
    ioMap[93] = 278; 
    ioMap[94] = 469; 
    ioMap[95] = 556; 
    ioMap[96] = 222; 
    ioMap[97] = 556; 
    ioMap[98] = 556; 
    ioMap[99] = 500; 
    ioMap[100] = 556; 
    ioMap[101] = 556; 
    ioMap[102] = 278; 
    ioMap[103] = 556; 
    ioMap[104] = 556; 
    ioMap[105] = 222; 
    ioMap[106] = 222; 
    ioMap[107] = 500; 
    ioMap[108] = 222; 
    ioMap[109] = 833; 
    ioMap[110] = 556; 
    ioMap[111] = 556; 
    ioMap[112] = 556; 
    ioMap[113] = 556; 
    ioMap[114] = 333; 
    ioMap[115] = 500; 
    ioMap[116] = 278; 
    ioMap[117] = 556; 
    ioMap[118] = 500; 
    ioMap[119] = 722; 
    ioMap[120] = 500; 
    ioMap[121] = 500; 
    ioMap[122] = 500; 
    ioMap[123] = 334; 
    ioMap[124] = 260; 
    ioMap[125] = 334; 
    ioMap[126] = 584; 
    ioMap[161] = 333; 
    ioMap[162] = 556; 
    ioMap[163] = 556; 
    ioMap[164] = 167; 
    ioMap[165] = 556; 
    ioMap[166] = 556; 
    ioMap[167] = 556; 
    ioMap[168] = 556; 
    ioMap[169] = 191; 
    ioMap[170] = 333; 
    ioMap[171] = 556; 
    ioMap[172] = 333; 
    ioMap[173] = 333; 
    ioMap[174] = 500; 
    ioMap[175] = 500; 
    ioMap[177] = 556; 
    ioMap[178] = 556; 
    ioMap[179] = 556; 
    ioMap[180] = 278; 
    ioMap[182] = 537; 
    ioMap[183] = 350; 
    ioMap[184] = 222; 
    ioMap[185] = 333; 
    ioMap[186] = 333; 
    ioMap[187] = 556; 
    ioMap[188] = 1000; 
    ioMap[189] = 1000; 
    ioMap[191] = 611; 
    ioMap[193] = 333; 
    ioMap[194] = 333; 
    ioMap[195] = 333; 
    ioMap[196] = 333; 
    ioMap[197] = 333; 
    ioMap[198] = 333; 
    ioMap[199] = 333; 
    ioMap[200] = 333; 
    ioMap[202] = 333; 
    ioMap[203] = 333; 
    ioMap[205] = 333; 
    ioMap[206] = 333; 
    ioMap[207] = 333; 
    ioMap[208] = 1000; 
    ioMap[225] = 1000; 
    ioMap[227] = 370; 
    ioMap[232] = 556; 
    ioMap[233] = 778; 
    ioMap[234] = 1000; 
    ioMap[235] = 365; 
    ioMap[241] = 889; 
    ioMap[245] = 278; 
    ioMap[248] = 222; 
    ioMap[249] = 611; 
    ioMap[250] = 944; 
    ioMap[251] = 611;
}

static void initHelveticaObliqueMap(ULongToDoubleMap& ioMap) {
    ioMap.clear();
    ioMap[32] = 278; 
    ioMap[33] = 278; 
    ioMap[34] = 355; 
    ioMap[35] = 556; 
    ioMap[36] = 556; 
    ioMap[37] = 889; 
    ioMap[38] = 667; 
    ioMap[39] = 222; 
    ioMap[40] = 333; 
    ioMap[41] = 333; 
    ioMap[42] = 389; 
    ioMap[43] = 584; 
    ioMap[44] = 278; 
    ioMap[45] = 333; 
    ioMap[46] = 278; 
    ioMap[47] = 278; 
    ioMap[48] = 556; 
    ioMap[49] = 556; 
    ioMap[50] = 556; 
    ioMap[51] = 556; 
    ioMap[52] = 556; 
    ioMap[53] = 556; 
    ioMap[54] = 556; 
    ioMap[55] = 556; 
    ioMap[56] = 556; 
    ioMap[57] = 556; 
    ioMap[58] = 278; 
    ioMap[59] = 278; 
    ioMap[60] = 584; 
    ioMap[61] = 584; 
    ioMap[62] = 584; 
    ioMap[63] = 556; 
    ioMap[64] = 1015; 
    ioMap[65] = 667; 
    ioMap[66] = 667; 
    ioMap[67] = 722; 
    ioMap[68] = 722; 
    ioMap[69] = 667; 
    ioMap[70] = 611; 
    ioMap[71] = 778; 
    ioMap[72] = 722; 
    ioMap[73] = 278; 
    ioMap[74] = 500; 
    ioMap[75] = 667; 
    ioMap[76] = 556; 
    ioMap[77] = 833; 
    ioMap[78] = 722; 
    ioMap[79] = 778; 
    ioMap[80] = 667; 
    ioMap[81] = 778; 
    ioMap[82] = 722; 
    ioMap[83] = 667; 
    ioMap[84] = 611; 
    ioMap[85] = 722; 
    ioMap[86] = 667; 
    ioMap[87] = 944; 
    ioMap[88] = 667; 
    ioMap[89] = 667; 
    ioMap[90] = 611; 
    ioMap[91] = 278; 
    ioMap[92] = 278; 
    ioMap[93] = 278; 
    ioMap[94] = 469; 
    ioMap[95] = 556; 
    ioMap[96] = 222; 
    ioMap[97] = 556; 
    ioMap[98] = 556; 
    ioMap[99] = 500; 
    ioMap[100] = 556; 
    ioMap[101] = 556; 
    ioMap[102] = 278; 
    ioMap[103] = 556; 
    ioMap[104] = 556; 
    ioMap[105] = 222; 
    ioMap[106] = 222; 
    ioMap[107] = 500; 
    ioMap[108] = 222; 
    ioMap[109] = 833; 
    ioMap[110] = 556; 
    ioMap[111] = 556; 
    ioMap[112] = 556; 
    ioMap[113] = 556; 
    ioMap[114] = 333; 
    ioMap[115] = 500; 
    ioMap[116] = 278; 
    ioMap[117] = 556; 
    ioMap[118] = 500; 
    ioMap[119] = 722; 
    ioMap[120] = 500; 
    ioMap[121] = 500; 
    ioMap[122] = 500; 
    ioMap[123] = 334; 
    ioMap[124] = 260; 
    ioMap[125] = 334; 
    ioMap[126] = 584; 
    ioMap[161] = 333; 
    ioMap[162] = 556; 
    ioMap[163] = 556; 
    ioMap[164] = 167; 
    ioMap[165] = 556; 
    ioMap[166] = 556; 
    ioMap[167] = 556; 
    ioMap[168] = 556; 
    ioMap[169] = 191; 
    ioMap[170] = 333; 
    ioMap[171] = 556; 
    ioMap[172] = 333; 
    ioMap[173] = 333; 
    ioMap[174] = 500; 
    ioMap[175] = 500; 
    ioMap[177] = 556; 
    ioMap[178] = 556; 
    ioMap[179] = 556; 
    ioMap[180] = 278; 
    ioMap[182] = 537; 
    ioMap[183] = 350; 
    ioMap[184] = 222; 
    ioMap[185] = 333; 
    ioMap[186] = 333; 
    ioMap[187] = 556; 
    ioMap[188] = 1000; 
    ioMap[189] = 1000; 
    ioMap[191] = 611; 
    ioMap[193] = 333; 
    ioMap[194] = 333; 
    ioMap[195] = 333; 
    ioMap[196] = 333; 
    ioMap[197] = 333; 
    ioMap[198] = 333; 
    ioMap[199] = 333; 
    ioMap[200] = 333; 
    ioMap[202] = 333; 
    ioMap[203] = 333; 
    ioMap[205] = 333; 
    ioMap[206] = 333; 
    ioMap[207] = 333; 
    ioMap[208] = 1000; 
    ioMap[225] = 1000; 
    ioMap[227] = 370; 
    ioMap[232] = 556; 
    ioMap[233] = 778; 
    ioMap[234] = 1000; 
    ioMap[235] = 365; 
    ioMap[241] = 889; 
    ioMap[245] = 278; 
    ioMap[248] = 222; 
    ioMap[249] = 611; 
    ioMap[250] = 944; 
    ioMap[251] = 611;
}

static void initSymbolMap(ULongToDoubleMap& ioMap) {
    ioMap.clear();
    ioMap[32] =  250; 
    ioMap[33] =  333; 
    ioMap[34] =  713; 
    ioMap[35] =  500; 
    ioMap[36] =  549; 
    ioMap[37] =  833; 
    ioMap[38] =  778; 
    ioMap[39] =  439; 
    ioMap[40] =  333; 
    ioMap[41] =  333; 
    ioMap[42] =  500; 
    ioMap[43] =  549; 
    ioMap[44] =  250; 
    ioMap[45] =  549; 
    ioMap[46] =  250; 
    ioMap[47] =  278; 
    ioMap[48] =  500; 
    ioMap[49] =  500; 
    ioMap[50] =  500; 
    ioMap[51] =  500; 
    ioMap[52] =  500; 
    ioMap[53] =  500; 
    ioMap[54] =  500; 
    ioMap[55] =  500; 
    ioMap[56] =  500; 
    ioMap[57] =  500; 
    ioMap[58] =  278; 
    ioMap[59] =  278; 
    ioMap[60] =  549; 
    ioMap[61] =  549; 
    ioMap[62] =  549; 
    ioMap[63] =  444; 
    ioMap[64] =  549; 
    ioMap[65] =  722; 
    ioMap[66] =  667; 
    ioMap[67] =  722; 
    ioMap[68] =  612; 
    ioMap[69] =  611; 
    ioMap[70] =  763; 
    ioMap[71] =  603; 
    ioMap[72] =  722; 
    ioMap[73] =  333; 
    ioMap[74] =  631; 
    ioMap[75] =  722; 
    ioMap[76] =  686; 
    ioMap[77] =  889; 
    ioMap[78] =  722; 
    ioMap[79] =  722; 
    ioMap[80] =  768; 
    ioMap[81] =  741; 
    ioMap[82] =  556; 
    ioMap[83] =  592; 
    ioMap[84] =  611; 
    ioMap[85] =  690; 
    ioMap[86] =  439; 
    ioMap[87] =  768; 
    ioMap[88] =  645; 
    ioMap[89] =  795; 
    ioMap[90] =  611; 
    ioMap[91] =  333; 
    ioMap[92] =  863; 
    ioMap[93] =  333; 
    ioMap[94] =  658; 
    ioMap[95] =  500; 
    ioMap[96] =  500; 
    ioMap[97] =  631; 
    ioMap[98] =  549; 
    ioMap[99] =  549; 
    ioMap[100] =  494; 
    ioMap[101] =  439; 
    ioMap[102] =  521; 
    ioMap[103] =  411; 
    ioMap[104] =  603; 
    ioMap[105] =  329; 
    ioMap[106] =  603; 
    ioMap[107] =  549; 
    ioMap[108] =  549; 
    ioMap[109] =  576; 
    ioMap[110] =  521; 
    ioMap[111] =  549; 
    ioMap[112] =  549; 
    ioMap[113] =  521; 
    ioMap[114] =  549; 
    ioMap[115] =  603; 
    ioMap[116] =  439; 
    ioMap[117] =  576; 
    ioMap[118] =  713; 
    ioMap[119] =  686; 
    ioMap[120] =  493; 
    ioMap[121] =  686; 
    ioMap[122] =  494; 
    ioMap[123] =  480; 
    ioMap[124] =  200; 
    ioMap[125] =  480; 
    ioMap[126] =  549; 
    ioMap[160] =  750; 
    ioMap[161] =  620; 
    ioMap[162] =  247; 
    ioMap[163] =  549; 
    ioMap[164] =  167; 
    ioMap[165] =  713; 
    ioMap[166] =  500; 
    ioMap[167] =  753; 
    ioMap[168] =  753; 
    ioMap[169] =  753; 
    ioMap[170] =  753; 
    ioMap[171] =  1042; 
    ioMap[172] =  987; 
    ioMap[173] =  603; 
    ioMap[174] =  987; 
    ioMap[175] =  603; 
    ioMap[176] =  400; 
    ioMap[177] =  549; 
    ioMap[178] =  411; 
    ioMap[179] =  549; 
    ioMap[180] =  549; 
    ioMap[181] =  713; 
    ioMap[182] =  494; 
    ioMap[183] =  460; 
    ioMap[184] =  549; 
    ioMap[185] =  549; 
    ioMap[186] =  549; 
    ioMap[187] =  549; 
    ioMap[188] =  1000; 
    ioMap[189] =  603; 
    ioMap[190] =  1000; 
    ioMap[191] =  658; 
    ioMap[192] =  823; 
    ioMap[193] =  686; 
    ioMap[194] =  795; 
    ioMap[195] =  987; 
    ioMap[196] =  768; 
    ioMap[197] =  768; 
    ioMap[198] =  823; 
    ioMap[199] =  768; 
    ioMap[200] =  768; 
    ioMap[201] =  713; 
    ioMap[202] =  713; 
    ioMap[203] =  713; 
    ioMap[204] =  713; 
    ioMap[205] =  713; 
    ioMap[206] =  713; 
    ioMap[207] =  713; 
    ioMap[208] =  768; 
    ioMap[209] =  713; 
    ioMap[210] =  790; 
    ioMap[211] =  790; 
    ioMap[212] =  890; 
    ioMap[213] =  823; 
    ioMap[214] =  549; 
    ioMap[215] =  250; 
    ioMap[216] =  713; 
    ioMap[217] =  603; 
    ioMap[218] =  603; 
    ioMap[219] =  1042; 
    ioMap[220] =  987; 
    ioMap[221] =  603; 
    ioMap[222] =  987; 
    ioMap[223] =  603; 
    ioMap[224] =  494; 
    ioMap[225] =  329; 
    ioMap[226] =  790; 
    ioMap[227] =  790; 
    ioMap[228] =  786; 
    ioMap[229] =  713; 
    ioMap[230] =  384; 
    ioMap[231] =  384; 
    ioMap[232] =  384; 
    ioMap[233] =  384; 
    ioMap[234] =  384; 
    ioMap[235] =  384; 
    ioMap[236] =  494; 
    ioMap[237] =  494; 
    ioMap[238] =  494; 
    ioMap[239] =  494; 
    ioMap[241] =  329; 
    ioMap[242] =  274; 
    ioMap[243] =  686; 
    ioMap[244] =  686; 
    ioMap[245] =  686; 
    ioMap[246] =  384; 
    ioMap[247] =  384; 
    ioMap[248] =  384; 
    ioMap[249] =  384; 
    ioMap[250] =  384; 
    ioMap[251] =  384; 
    ioMap[252] =  494; 
    ioMap[253] =  494; 
    ioMap[254] =  494;
}

static void initTimesBoldMap(ULongToDoubleMap& ioMap) {
    ioMap.clear();
    ioMap[32] =  250; 
    ioMap[33] =  333; 
    ioMap[34] =  555; 
    ioMap[35] =  500; 
    ioMap[36] =  500; 
    ioMap[37] =  1000; 
    ioMap[38] =  833; 
    ioMap[39] =  333; 
    ioMap[40] =  333; 
    ioMap[41] =  333; 
    ioMap[42] =  500; 
    ioMap[43] =  570; 
    ioMap[44] =  250; 
    ioMap[45] =  333; 
    ioMap[46] =  250; 
    ioMap[47] =  278; 
    ioMap[48] =  500; 
    ioMap[49] =  500; 
    ioMap[50] =  500; 
    ioMap[51] =  500; 
    ioMap[52] =  500; 
    ioMap[53] =  500; 
    ioMap[54] =  500; 
    ioMap[55] =  500; 
    ioMap[56] =  500; 
    ioMap[57] =  500; 
    ioMap[58] =  333; 
    ioMap[59] =  333; 
    ioMap[60] =  570; 
    ioMap[61] =  570; 
    ioMap[62] =  570; 
    ioMap[63] =  500; 
    ioMap[64] =  930; 
    ioMap[65] =  722; 
    ioMap[66] =  667; 
    ioMap[67] =  722; 
    ioMap[68] =  722; 
    ioMap[69] =  667; 
    ioMap[70] =  611; 
    ioMap[71] =  778; 
    ioMap[72] =  778; 
    ioMap[73] =  389; 
    ioMap[74] =  500; 
    ioMap[75] =  778; 
    ioMap[76] =  667; 
    ioMap[77] =  944; 
    ioMap[78] =  722; 
    ioMap[79] =  778; 
    ioMap[80] =  611; 
    ioMap[81] =  778; 
    ioMap[82] =  722; 
    ioMap[83] =  556; 
    ioMap[84] =  667; 
    ioMap[85] =  722; 
    ioMap[86] =  722; 
    ioMap[87] =  1000; 
    ioMap[88] =  722; 
    ioMap[89] =  722; 
    ioMap[90] =  667; 
    ioMap[91] =  333; 
    ioMap[92] =  278; 
    ioMap[93] =  333; 
    ioMap[94] =  581; 
    ioMap[95] =  500; 
    ioMap[96] =  333; 
    ioMap[97] =  500; 
    ioMap[98] =  556; 
    ioMap[99] =  444; 
    ioMap[100] =  556; 
    ioMap[101] =  444; 
    ioMap[102] =  333; 
    ioMap[103] =  500; 
    ioMap[104] =  556; 
    ioMap[105] =  278; 
    ioMap[106] =  333; 
    ioMap[107] =  556; 
    ioMap[108] =  278; 
    ioMap[109] =  833; 
    ioMap[110] =  556; 
    ioMap[111] =  500; 
    ioMap[112] =  556; 
    ioMap[113] =  556; 
    ioMap[114] =  444; 
    ioMap[115] =  389; 
    ioMap[116] =  333; 
    ioMap[117] =  556; 
    ioMap[118] =  500; 
    ioMap[119] =  722; 
    ioMap[120] =  500; 
    ioMap[121] =  500; 
    ioMap[122] =  444; 
    ioMap[123] =  394; 
    ioMap[124] =  220; 
    ioMap[125] =  394; 
    ioMap[126] =  520; 
    ioMap[161] =  333; 
    ioMap[162] =  500; 
    ioMap[163] =  500; 
    ioMap[164] =  167; 
    ioMap[165] =  500; 
    ioMap[166] =  500; 
    ioMap[167] =  500; 
    ioMap[168] =  500; 
    ioMap[169] =  278; 
    ioMap[170] =  500; 
    ioMap[171] =  500; 
    ioMap[172] =  333; 
    ioMap[173] =  333; 
    ioMap[174] =  556; 
    ioMap[175] =  556; 
    ioMap[177] =  500; 
    ioMap[178] =  500; 
    ioMap[179] =  500; 
    ioMap[180] =  250; 
    ioMap[182] =  540; 
    ioMap[183] =  350; 
    ioMap[184] =  333; 
    ioMap[185] =  500; 
    ioMap[186] =  500; 
    ioMap[187] =  500; 
    ioMap[188] =  1000; 
    ioMap[189] =  1000; 
    ioMap[191] =  500; 
    ioMap[193] =  333; 
    ioMap[194] =  333; 
    ioMap[195] =  333; 
    ioMap[196] =  333; 
    ioMap[197] =  333; 
    ioMap[198] =  333; 
    ioMap[199] =  333; 
    ioMap[200] =  333; 
    ioMap[202] =  333; 
    ioMap[203] =  333; 
    ioMap[205] =  333; 
    ioMap[206] =  333; 
    ioMap[207] =  333; 
    ioMap[208] =  1000; 
    ioMap[225] =  1000; 
    ioMap[227] =  300; 
    ioMap[232] =  667; 
    ioMap[233] =  778; 
    ioMap[234] =  1000; 
    ioMap[235] =  330; 
    ioMap[241] =  722; 
    ioMap[245] =  278; 
    ioMap[248] =  278; 
    ioMap[249] =  500; 
    ioMap[250] =  722; 
    ioMap[251] =  556;
}

static void initTimesBoldItalicMap(ULongToDoubleMap& ioMap) {
    ioMap.clear();
    ioMap[32] =  250; 
    ioMap[33] =  389; 
    ioMap[34] =  555; 
    ioMap[35] =  500; 
    ioMap[36] =  500; 
    ioMap[37] =  833; 
    ioMap[38] =  778; 
    ioMap[39] =  333; 
    ioMap[40] =  333; 
    ioMap[41] =  333; 
    ioMap[42] =  500; 
    ioMap[43] =  570; 
    ioMap[44] =  250; 
    ioMap[45] =  333; 
    ioMap[46] =  250; 
    ioMap[47] =  278; 
    ioMap[48] =  500; 
    ioMap[49] =  500; 
    ioMap[50] =  500; 
    ioMap[51] =  500; 
    ioMap[52] =  500; 
    ioMap[53] =  500; 
    ioMap[54] =  500; 
    ioMap[55] =  500; 
    ioMap[56] =  500; 
    ioMap[57] =  500; 
    ioMap[58] =  333; 
    ioMap[59] =  333; 
    ioMap[60] =  570; 
    ioMap[61] =  570; 
    ioMap[62] =  570; 
    ioMap[63] =  500; 
    ioMap[64] =  832; 
    ioMap[65] =  667; 
    ioMap[66] =  667; 
    ioMap[67] =  667; 
    ioMap[68] =  722; 
    ioMap[69] =  667; 
    ioMap[70] =  667; 
    ioMap[71] =  722; 
    ioMap[72] =  778; 
    ioMap[73] =  389; 
    ioMap[74] =  500; 
    ioMap[75] =  667; 
    ioMap[76] =  611; 
    ioMap[77] =  889; 
    ioMap[78] =  722; 
    ioMap[79] =  722; 
    ioMap[80] =  611; 
    ioMap[81] =  722; 
    ioMap[82] =  667; 
    ioMap[83] =  556; 
    ioMap[84] =  611; 
    ioMap[85] =  722; 
    ioMap[86] =  667; 
    ioMap[87] =  889; 
    ioMap[88] =  667; 
    ioMap[89] =  611; 
    ioMap[90] =  611; 
    ioMap[91] =  333; 
    ioMap[92] =  278; 
    ioMap[93] =  333; 
    ioMap[94] =  570; 
    ioMap[95] =  500; 
    ioMap[96] =  333; 
    ioMap[97] =  500; 
    ioMap[98] =  500; 
    ioMap[99] =  444; 
    ioMap[100] =  500; 
    ioMap[101] =  444; 
    ioMap[102] =  333; 
    ioMap[103] =  500; 
    ioMap[104] =  556; 
    ioMap[105] =  278; 
    ioMap[106] =  278; 
    ioMap[107] =  500; 
    ioMap[108] =  278; 
    ioMap[109] =  778; 
    ioMap[110] =  556; 
    ioMap[111] =  500; 
    ioMap[112] =  500; 
    ioMap[113] =  500; 
    ioMap[114] =  389; 
    ioMap[115] =  389; 
    ioMap[116] =  278; 
    ioMap[117] =  556; 
    ioMap[118] =  444; 
    ioMap[119] =  667; 
    ioMap[120] =  500; 
    ioMap[121] =  444; 
    ioMap[122] =  389; 
    ioMap[123] =  348; 
    ioMap[124] =  220; 
    ioMap[125] =  348; 
    ioMap[126] =  570; 
    ioMap[161] =  389; 
    ioMap[162] =  500; 
    ioMap[163] =  500; 
    ioMap[164] =  167; 
    ioMap[165] =  500; 
    ioMap[166] =  500; 
    ioMap[167] =  500; 
    ioMap[168] =  500; 
    ioMap[169] =  278; 
    ioMap[170] =  500; 
    ioMap[171] =  500; 
    ioMap[172] =  333; 
    ioMap[173] =  333; 
    ioMap[174] =  556; 
    ioMap[175] =  556; 
    ioMap[177] =  500; 
    ioMap[178] =  500; 
    ioMap[179] =  500; 
    ioMap[180] =  250; 
    ioMap[182] =  500; 
    ioMap[183] =  350; 
    ioMap[184] =  333; 
    ioMap[185] =  500; 
    ioMap[186] =  500; 
    ioMap[187] =  500; 
    ioMap[188] =  1000; 
    ioMap[189] =  1000; 
    ioMap[191] =  500; 
    ioMap[193] =  333; 
    ioMap[194] =  333; 
    ioMap[195] =  333; 
    ioMap[196] =  333; 
    ioMap[197] =  333; 
    ioMap[198] =  333; 
    ioMap[199] =  333; 
    ioMap[200] =  333; 
    ioMap[202] =  333; 
    ioMap[203] =  333; 
    ioMap[205] =  333; 
    ioMap[206] =  333; 
    ioMap[207] =  333; 
    ioMap[208] =  1000; 
    ioMap[225] =  944; 
    ioMap[227] =  266; 
    ioMap[232] =  611; 
    ioMap[233] =  722; 
    ioMap[234] =  944; 
    ioMap[235] =  300; 
    ioMap[241] =  722; 
    ioMap[245] =  278; 
    ioMap[248] =  278; 
    ioMap[249] =  500; 
    ioMap[250] =  722; 
    ioMap[251] =  500      ;
}

static void initTimesItalicMap(ULongToDoubleMap& ioMap) {
    ioMap.clear();
    ioMap[32] =  250;
    ioMap[33] =  333;
    ioMap[34] =  420;
    ioMap[35] =  500;
    ioMap[36] =  500;
    ioMap[37] =  833;
    ioMap[38] =  778;
    ioMap[39] =  333;
    ioMap[40] =  333;
    ioMap[41] =  333;
    ioMap[42] =  500;
    ioMap[43] =  675;
    ioMap[44] =  250;
    ioMap[45] =  333;
    ioMap[46] =  250;
    ioMap[47] =  278;
    ioMap[48] =  500;
    ioMap[49] =  500;
    ioMap[50] =  500;
    ioMap[51] =  500;
    ioMap[52] =  500;
    ioMap[53] =  500;
    ioMap[54] =  500;
    ioMap[55] =  500;
    ioMap[56] =  500;
    ioMap[57] =  500;
    ioMap[58] =  333;
    ioMap[59] =  333;
    ioMap[60] =  675;
    ioMap[61] =  675;
    ioMap[62] =  675;
    ioMap[63] =  500;
    ioMap[64] =  920;
    ioMap[65] =  611;
    ioMap[66] =  611;
    ioMap[67] =  667;
    ioMap[68] =  722;
    ioMap[69] =  611;
    ioMap[70] =  611;
    ioMap[71] =  722;
    ioMap[72] =  722;
    ioMap[73] =  333;
    ioMap[74] =  444;
    ioMap[75] =  667;
    ioMap[76] =  556;
    ioMap[77] =  833;
    ioMap[78] =  667;
    ioMap[79] =  722;
    ioMap[80] =  611;
    ioMap[81] =  722;
    ioMap[82] =  611;
    ioMap[83] =  500;
    ioMap[84] =  556;
    ioMap[85] =  722;
    ioMap[86] =  611;
    ioMap[87] =  833;
    ioMap[88] =  611;
    ioMap[89] =  556;
    ioMap[90] =  556;
    ioMap[91] =  389;
    ioMap[92] =  278;
    ioMap[93] =  389;
    ioMap[94] =  422;
    ioMap[95] =  500;
    ioMap[96] =  333;
    ioMap[97] =  500;
    ioMap[98] =  500;
    ioMap[99] =  444;
    ioMap[100] =  500;
    ioMap[101] =  444;
    ioMap[102] =  278;
    ioMap[103] =  500;
    ioMap[104] =  500;
    ioMap[105] =  278;
    ioMap[106] =  278;
    ioMap[107] =  444;
    ioMap[108] =  278;
    ioMap[109] =  722;
    ioMap[110] =  500;
    ioMap[111] =  500;
    ioMap[112] =  500;
    ioMap[113] =  500;
    ioMap[114] =  389;
    ioMap[115] =  389;
    ioMap[116] =  278;
    ioMap[117] =  500;
    ioMap[118] =  444;
    ioMap[119] =  667;
    ioMap[120] =  444;
    ioMap[121] =  444;
    ioMap[122] =  389;
    ioMap[123] =  400;
    ioMap[124] =  275;
    ioMap[125] =  400;
    ioMap[126] =  541;
    ioMap[161] =  389;
    ioMap[162] =  500;
    ioMap[163] =  500;
    ioMap[164] =  167;
    ioMap[165] =  500;
    ioMap[166] =  500;
    ioMap[167] =  500;
    ioMap[168] =  500;
    ioMap[169] =  214;
    ioMap[170] =  556;
    ioMap[171] =  500;
    ioMap[172] =  333;
    ioMap[173] =  333;
    ioMap[174] =  500;
    ioMap[175] =  500;
    ioMap[177] =  500;
    ioMap[178] =  500;
    ioMap[179] =  500;
    ioMap[180] =  250;
    ioMap[182] =  523;
    ioMap[183] =  350;
    ioMap[184] =  333;
    ioMap[185] =  556;
    ioMap[186] =  556;
    ioMap[187] =  500;
    ioMap[188] =  889;
    ioMap[189] =  1000;
    ioMap[191] =  500;
    ioMap[193] =  333;
    ioMap[194] =  333;
    ioMap[195] =  333;
    ioMap[196] =  333;
    ioMap[197] =  333;
    ioMap[198] =  333;
    ioMap[199] =  333;
    ioMap[200] =  333;
    ioMap[202] =  333;
    ioMap[203] =  333;
    ioMap[205] =  333;
    ioMap[206] =  333;
    ioMap[207] =  333;
    ioMap[208] =  889;
    ioMap[225] =  889;
    ioMap[227] =  276;
    ioMap[232] =  556;
    ioMap[233] =  722;
    ioMap[234] =  944;
    ioMap[235] =  310;
    ioMap[241] =  667;
    ioMap[245] =  278;
    ioMap[248] =  278;
    ioMap[249] =  500;
    ioMap[250] =  667;
    ioMap[251] =  500;     
}

static void initTimesRomaMap(ULongToDoubleMap& ioMap) {
    ioMap[32] =  250;
    ioMap[33] =  333;
    ioMap[34] =  408;
    ioMap[35] =  500;
    ioMap[36] =  500;
    ioMap[37] =  833;
    ioMap[38] =  778;
    ioMap[39] =  333;
    ioMap[40] =  333;
    ioMap[41] =  333;
    ioMap[42] =  500;
    ioMap[43] =  564;
    ioMap[44] =  250;
    ioMap[45] =  333;
    ioMap[46] =  250;
    ioMap[47] =  278;
    ioMap[48] =  500;
    ioMap[49] =  500;
    ioMap[50] =  500;
    ioMap[51] =  500;
    ioMap[52] =  500;
    ioMap[53] =  500;
    ioMap[54] =  500;
    ioMap[55] =  500;
    ioMap[56] =  500;
    ioMap[57] =  500;
    ioMap[58] =  278;
    ioMap[59] =  278;
    ioMap[60] =  564;
    ioMap[61] =  564;
    ioMap[62] =  564;
    ioMap[63] =  444;
    ioMap[64] =  921;
    ioMap[65] =  722;
    ioMap[66] =  667;
    ioMap[67] =  667;
    ioMap[68] =  722;
    ioMap[69] =  611;
    ioMap[70] =  556;
    ioMap[71] =  722;
    ioMap[72] =  722;
    ioMap[73] =  333;
    ioMap[74] =  389;
    ioMap[75] =  722;
    ioMap[76] =  611;
    ioMap[77] =  889;
    ioMap[78] =  722;
    ioMap[79] =  722;
    ioMap[80] =  556;
    ioMap[81] =  722;
    ioMap[82] =  667;
    ioMap[83] =  556;
    ioMap[84] =  611;
    ioMap[85] =  722;
    ioMap[86] =  722;
    ioMap[87] =  944;
    ioMap[88] =  722;
    ioMap[89] =  722;
    ioMap[90] =  611;
    ioMap[91] =  333;
    ioMap[92] =  278;
    ioMap[93] =  333;
    ioMap[94] =  469;
    ioMap[95] =  500;
    ioMap[96] =  333;
    ioMap[97] =  444;
    ioMap[98] =  500;
    ioMap[99] =  444;
    ioMap[100] =  500;
    ioMap[101] =  444;
    ioMap[102] =  333;
    ioMap[103] =  500;
    ioMap[104] =  500;
    ioMap[105] =  278;
    ioMap[106] =  278;
    ioMap[107] =  500;
    ioMap[108] =  278;
    ioMap[109] =  778;
    ioMap[110] =  500;
    ioMap[111] =  500;
    ioMap[112] =  500;
    ioMap[113] =  500;
    ioMap[114] =  333;
    ioMap[115] =  389;
    ioMap[116] =  278;
    ioMap[117] =  500;
    ioMap[118] =  500;
    ioMap[119] =  722;
    ioMap[120] =  500;
    ioMap[121] =  500;
    ioMap[122] =  444;
    ioMap[123] =  480;
    ioMap[124] =  200;
    ioMap[125] =  480;
    ioMap[126] =  541;
    ioMap[161] =  333;
    ioMap[162] =  500;
    ioMap[163] =  500;
    ioMap[164] =  167;
    ioMap[165] =  500;
    ioMap[166] =  500;
    ioMap[167] =  500;
    ioMap[168] =  500;
    ioMap[169] =  180;
    ioMap[170] =  444;
    ioMap[171] =  500;
    ioMap[172] =  333;
    ioMap[173] =  333;
    ioMap[174] =  556;
    ioMap[175] =  556;
    ioMap[177] =  500;
    ioMap[178] =  500;
    ioMap[179] =  500;
    ioMap[180] =  250;
    ioMap[182] =  453;
    ioMap[183] =  350;
    ioMap[184] =  333;
    ioMap[185] =  444;
    ioMap[186] =  444;
    ioMap[187] =  500;
    ioMap[188] =  1000;
    ioMap[189] =  1000;
    ioMap[191] =  444;
    ioMap[193] =  333;
    ioMap[194] =  333;
    ioMap[195] =  333;
    ioMap[196] =  333;
    ioMap[197] =  333;
    ioMap[198] =  333;
    ioMap[199] =  333;
    ioMap[200] =  333;
    ioMap[202] =  333;
    ioMap[203] =  333;
    ioMap[205] =  333;
    ioMap[206] =  333;
    ioMap[207] =  333;
    ioMap[208] =  1000;
    ioMap[225] =  889;
    ioMap[227] =  276;
    ioMap[232] =  611;
    ioMap[233] =  722;
    ioMap[234] =  889;
    ioMap[235] =  310;
    ioMap[241] =  667;
    ioMap[245] =  278;
    ioMap[248] =  278;
    ioMap[249] =  500;
    ioMap[250] =  722;
    ioMap[251] =  500;
}

static void initZapfDingbats(ULongToDoubleMap& ioMap) {
    ioMap.clear();
    ioMap[32] =  278;
    ioMap[33] =  974;
    ioMap[34] =  961;
    ioMap[35] =  974;
    ioMap[36] =  980;
    ioMap[37] =  719;
    ioMap[38] =  789;
    ioMap[39] =  790;
    ioMap[40] =  791;
    ioMap[41] =  690;
    ioMap[42] =  960;
    ioMap[43] =  939;
    ioMap[44] =  549;
    ioMap[45] =  855;
    ioMap[46] =  911;
    ioMap[47] =  933;
    ioMap[48] =  911;
    ioMap[49] =  945;
    ioMap[50] =  974;
    ioMap[51] =  755;
    ioMap[52] =  846;
    ioMap[53] =  762;
    ioMap[54] =  761;
    ioMap[55] =  571;
    ioMap[56] =  677;
    ioMap[57] =  763;
    ioMap[58] =  760;
    ioMap[59] =  759;
    ioMap[60] =  754;
    ioMap[61] =  494;
    ioMap[62] =  552;
    ioMap[63] =  537;
    ioMap[64] =  577;
    ioMap[65] =  692;
    ioMap[66] =  786;
    ioMap[67] =  788;
    ioMap[68] =  788;
    ioMap[69] =  790;
    ioMap[70] =  793;
    ioMap[71] =  794;
    ioMap[72] =  816;
    ioMap[73] =  823;
    ioMap[74] =  789;
    ioMap[75] =  841;
    ioMap[76] =  823;
    ioMap[77] =  833;
    ioMap[78] =  816;
    ioMap[79] =  831;
    ioMap[80] =  923;
    ioMap[81] =  744;
    ioMap[82] =  723;
    ioMap[83] =  749;
    ioMap[84] =  790;
    ioMap[85] =  792;
    ioMap[86] =  695;
    ioMap[87] =  776;
    ioMap[88] =  768;
    ioMap[89] =  792;
    ioMap[90] =  759;
    ioMap[91] =  707;
    ioMap[92] =  708;
    ioMap[93] =  682;
    ioMap[94] =  701;
    ioMap[95] =  826;
    ioMap[96] =  815;
    ioMap[97] =  789;
    ioMap[98] =  789;
    ioMap[99] =  707;
    ioMap[100] =  687;
    ioMap[101] =  696;
    ioMap[102] =  689;
    ioMap[103] =  786;
    ioMap[104] =  787;
    ioMap[105] =  713;
    ioMap[106] =  791;
    ioMap[107] =  785;
    ioMap[108] =  791;
    ioMap[109] =  873;
    ioMap[110] =  761;
    ioMap[111] =  762;
    ioMap[112] =  762;
    ioMap[113] =  759;
    ioMap[114] =  759;
    ioMap[115] =  892;
    ioMap[116] =  892;
    ioMap[117] =  788;
    ioMap[118] =  784;
    ioMap[119] =  438;
    ioMap[120] =  138;
    ioMap[121] =  277;
    ioMap[122] =  415;
    ioMap[123] =  392;
    ioMap[124] =  392;
    ioMap[125] =  668;
    ioMap[126] =  668;
    ioMap[128] =  390;
    ioMap[129] =  390;
    ioMap[130] =  317;
    ioMap[131] =  317;
    ioMap[132] =  276;
    ioMap[133] =  276;
    ioMap[134] =  509;
    ioMap[135] =  509;
    ioMap[136] =  410;
    ioMap[137] =  410;
    ioMap[138] =  234;
    ioMap[139] =  234;
    ioMap[140] =  334;
    ioMap[141] =  334;
    ioMap[161] =  732;
    ioMap[162] =  544;
    ioMap[163] =  544;
    ioMap[164] =  910;
    ioMap[165] =  667;
    ioMap[166] =  760;
    ioMap[167] =  760;
    ioMap[168] =  776;
    ioMap[169] =  595;
    ioMap[170] =  694;
    ioMap[171] =  626;
    ioMap[172] =  788;
    ioMap[173] =  788;
    ioMap[174] =  788;
    ioMap[175] =  788;
    ioMap[176] =  788;
    ioMap[177] =  788;
    ioMap[178] =  788;
    ioMap[179] =  788;
    ioMap[180] =  788;
    ioMap[181] =  788;
    ioMap[182] =  788;
    ioMap[183] =  788;
    ioMap[184] =  788;
    ioMap[185] =  788;
    ioMap[186] =  788;
    ioMap[187] =  788;
    ioMap[188] =  788;
    ioMap[189] =  788;
    ioMap[190] =  788;
    ioMap[191] =  788;
    ioMap[192] =  788;
    ioMap[193] =  788;
    ioMap[194] =  788;
    ioMap[195] =  788;
    ioMap[196] =  788;
    ioMap[197] =  788;
    ioMap[198] =  788;
    ioMap[199] =  788;
    ioMap[200] =  788;
    ioMap[201] =  788;
    ioMap[202] =  788;
    ioMap[203] =  788;
    ioMap[204] =  788;
    ioMap[205] =  788;
    ioMap[206] =  788;
    ioMap[207] =  788;
    ioMap[208] =  788;
    ioMap[209] =  788;
    ioMap[210] =  788;
    ioMap[211] =  788;
    ioMap[212] =  894;
    ioMap[213] =  838;
    ioMap[214] =  1016;
    ioMap[215] =  458;
    ioMap[216] =  748;
    ioMap[217] =  924;
    ioMap[218] =  748;
    ioMap[219] =  918;
    ioMap[220] =  927;
    ioMap[221] =  928;
    ioMap[222] =  928;
    ioMap[223] =  834;
    ioMap[224] =  873;
    ioMap[225] =  828;
    ioMap[226] =  924;
    ioMap[227] =  924;
    ioMap[228] =  917;
    ioMap[229] =  930;
    ioMap[230] =  931;
    ioMap[231] =  463;
    ioMap[232] =  883;
    ioMap[233] =  836;
    ioMap[234] =  836;
    ioMap[235] =  867;
    ioMap[236] =  867;
    ioMap[237] =  696;
    ioMap[238] =  696;
    ioMap[239] =  874;
    ioMap[241] =  874;
    ioMap[242] =  760;
    ioMap[243] =  946;
    ioMap[244] =  771;
    ioMap[245] =  865;
    ioMap[246] =  771;
    ioMap[247] =  888;
    ioMap[248] =  967;
    ioMap[249] =  888;
    ioMap[250] =  831;
    ioMap[251] =  873;
    ioMap[252] =  927;
    ioMap[253] =  970;
}

StandardFontsDimensions::StandardFontsDimensions() {
    ULongToDoubleMap buffer;

    // init fonts map
    fonts["Courier"] = FontWidthDescriptor(629, -157, 600);
    fonts["Courier-Bold"] = FontWidthDescriptor(629, -157, 600);
    fonts["Courier-BoldOblique"] = FontWidthDescriptor(629, -157, 600);
    fonts["Courier-Oblique"] = FontWidthDescriptor(629, -157, 600);
    initHelveticaMap(buffer);
    fonts["Helvetica"] = FontWidthDescriptor(718, -207, buffer);
    initHelveticaBoldMap(buffer);
    fonts["Helvetica-Bold"] = FontWidthDescriptor(718, -207, buffer);
    initHelveticaBoldObliqueMap(buffer);
    fonts["Helvetica-BoldOblique"] = FontWidthDescriptor(718, -207, buffer);
    initHelveticaObliqueMap(buffer);
    fonts["Helvetica-Oblique"] = FontWidthDescriptor(718, -207, buffer);
    initSymbolMap(buffer);
    fonts["Symbol"] = FontWidthDescriptor(1010, -293, buffer);
    initTimesBoldMap(buffer);
    fonts["Times-Bold"] = FontWidthDescriptor(683, -217, buffer);
    initTimesBoldItalicMap(buffer);
    fonts["Times-BoldItalic"] = FontWidthDescriptor(683, -217, buffer);
    initTimesItalicMap(buffer);
    fonts["Times-Italic"] = FontWidthDescriptor(683, -217, buffer);
    initTimesRomaMap(buffer);
    fonts["Times-Roman"] = FontWidthDescriptor(683, -217, buffer);
    initZapfDingbats(buffer);
    fonts["ZapfDingbats"] = FontWidthDescriptor(820, -143, buffer);
}

const FontWidthDescriptor* StandardFontsDimensions::FindStandardFont(const std::string& inFontName) const {
    // allow minus (0x2212) in name instead of of hyphen (0x2D)
    string key = inFontName;
    replace( key.begin(), key.end(), 0x2212, 0x2D);

    StringToFontWidthDescriptorMap::const_iterator it = fonts.find(key);
    if(it == fonts.end())
        return NULL;
    else
        return &(it->second);
}